#ifndef SYMTABLE_H_
#define SYMTABLE_H_

#include "TType.h"
#include "Key.h"
#include "Information.h"
#include "SymTabEntry.h"
#include "StringTab.h"

class SymTable {
public:
	SymTable();
	 ~SymTable();
	Key* insert(char* lexem, const TTypes::TType type);
	Information* lookup(Key* key);
	void printMemory();
private:
	StringTab* mMemory;
	SymTabEntry** mEntries;
	int hashcode(const char* lexem) const;
	bool compareLexem(char* string1, char* string2);
	int getLexemSize(const char* lexem);

};

#endif /* SYMTABLE_H_ */
